package main

import "fmt"

func main() {
	var a, b = swap("1","2")
	fmt.Println(a,b)

	//值传递，引用传递
	aa := []int{1}
	//setVal(aa)
	setObj(aa)
	fmt.Println(aa)
}

/**
 返回多个值
 */
func swap(x, y string) (string, string) {
	return y, x
}

/**
  匿名函数  闭包
  匿名函数的优越性在于可以直接使用函数内的变量，不必申明
 */
func getSequence() func() int {
	i:=0
	return func() int {
		i+=1
		return i
	}
}

func setVal(a int)  {
	a = 10
	fmt.Println(a)
}

func setObj(a []int)  {
	a[0] = 12
	fmt.Println(a)
}